//***************************************************************************//
//*
//* 内容摘要：收到底层数据或通知进行处理的抽象类.
//*	
//* 当前版本：V1.0		
//* 作    者：zhfayuan
//* 完成日期：2015-12-26
//**************************************************************************//
#if !defined(SDPLAYBACKIFACE_H)
#define SDPLAYBACKIFACE_H

#include "SDAVProcess.h"


// 接收到码流或底层反馈时，通过虚函数通知外层
class CSDPlaybackIFace
{

public:
	CSDPlaybackIFace() 
	{

	}

	virtual ~CSDPlaybackIFace() 
	{

	}

    //收到服务器远程文件播放结束
	virtual void OnCompleted(UINT unAvMsgIndex) = 0;

    //收到服务器远程文件打开消息
	virtual void OnOpened(UINT unAvMsgIndex,BYTE success) = 0;

	//来自底层的退出反馈（比如与服务器之间TCP连接断开时，将通过本接口反馈应用层）
	virtual void OnSystemExit(UINT unExitCause) = 0;
	
	//播放进去更新
	virtual void OnVodPlayProgress(UINT unAvMsgIndex, UINT  sec, UINT duration) = 0;

	// 收到服务器发来的视频
	virtual void OnRemoteVideo(UINT unAvMsgIndex,BYTE byCodec,BYTE byIndex, BYTE* data, UINT unLen, UINT unPTS, VideoFrameInfo tFrameInfo) = 0;

	// 收到服务器发来的音频
	virtual void OnRemoteAudio(UINT unAvMsgIndex,BYTE byCodec,BYTE byIndex, BYTE* data, UINT unLen, UINT unPTS, AudioFrameInfo tFrameInfo) = 0;


	//流是否解密成功,不加密的流不会调用,加密流会调用
	virtual void OnStreamDecryptFailed(UINT unAvMsgIndex, BYTE byIndex) = 0;

};

#endif // !defined(SDTERMCMDIFACE_H)
